package com.ruoyi.oto.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.entity.MemberUser;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.oto.domain.CompanyCore;
import com.ruoyi.oto.domain.CompanyTags;
import com.ruoyi.oto.domain.vo.CompanyTagCoreQueryParamVO;

import java.util.List;

/**
 * 企业和标签绑定关系
 *
 * @author ruoyi
 */
public interface CompanyTagsService extends IService<CompanyTags> {

    /**
     * 获取企业的标签-小程序
     *
     * @param curtCompany 要查看的企业
     * @param curtMember  当前登录的用户
     * @param applyStatus 要获取的标签状态
     * @return
     */
    List<CompanyTags> companyTagListFront(CompanyCore curtCompany, MemberUser curtMember, Integer applyStatus);

    /**
     * 获取企业的标签-后台
     * @param curtCompany 要查看的企业
     * @param sysUser     后台登录用户
     * @param applyStatus 要获取的标签状态
     * @return
     */
    List<CompanyTags> companyTagListBack(CompanyCore curtCompany, SysUser sysUser, Integer applyStatus);

    /**
     * 根据企业和标签ID来获取企业标签
     * @param companyId
     * @param tagId
     * @return
     */
    CompanyTags getCompanyTagsByCompanyAndTagId(Long companyId,Long tagId);

    /**
     * 根据标签值获取对应的企业
     * @param conditions
     * @return
     */
    List<Long> getCompanyIdsByTagVal(List<String> conditions);

    /**
     * 获取查询参数标签
     * @return
     */
    CompanyTagCoreQueryParamVO getCompanyTagsQueryParam(LoginUser loginUser);
}
